Repository Public
1// Auteur : Simon-Pierre Boucher — contact@spboucher.ai2// /api/admin/submissions/[id]/notes — note interne (jamais visible du3// demandeur) : auteur + date + demande, journalisée dans l'historique.4import { NextRequest, NextResponse } from "next/server";5import { findSubmissionById, insertNote, logEvent } from "@/lib/comms/db";6import { getAdminSession, canViewSubmission } from "@/lib/comms/admin-auth";78export async function POST(9 req: NextRequest,10 { params }: { params: Promise<{ id: string }> },11) {12 const session = await getAdminSession();13 if (!session)14 return NextResponse.json({ error: "Non autorisé." }, { status: 401 });15 const id = Number((await params).id);16 const sub = Number.isInteger(id) ? findSubmissionById(id) : undefined;17 if (!sub || !canViewSubmission(session, sub))18 return NextResponse.json({ error: "Demande introuvable." }, { status: 404 });1920 const body = (await req.json().catch(() => null)) as { body?: string } | null;21 const text = (body?.body ?? "").trim().slice(0, 8000);22 if (!text)23 return NextResponse.json({ error: "Note vide." }, { status: 422 });24 insertNote(sub.id, session.id, text);25 logEvent(sub.id, session.id, "note", "Note interne ajoutée");26 return NextResponse.json({ ok: true });27}28